/*
 * @Description: 字符串查找 
 * @Author: BaldHead
 * @Date: 2022-04-03 14:43:17
 * @LastEditTime: 2022-04-05 19:14:57
 * @LastEditors: Please set LastEditors
 */

// 如何把一个字符串的大小写取反  大写变小写  小写变大写  正则

let str = "baldhead很能吃，BeiJingYouXuezuiTian*10 "
console.log(str);
str = str.replace(/[a-zA-Z]/g, content => {
    // content.charCodeAt() >= 65 && content.charCodeAt()<=90
    return content.toUpperCase() === content ? content.toLowerCase() : content.toUpperCase();

})
console.log(str);

// 实现一个字符串匹配算法， 从字符串s中， 查找是否存在字符串T, 若存在返回所在位置， 不存在返回 - 1!
// (如果不能基于indexOf / includes等内置方法， 你会如何处理)
~ function() {
    // 循环原始字符串的每一项， 让每一项从当前位置向后截取T.length个字符， 然后和T进行比较

    // function myIndexOf(T) {
    //     let lenT = T.length,
    //         lenS = this.length;
    //     if (lenT > lenS) return -1;
    //     for (let index = 0; index < lenS - lenT; index++) {
    //         if (this.substr(index, lenT) === T) {
    //             res = index;
    //             break;
    //         }
    //     }
    //     return res;
    // }
    // 正则处理
    function myIndexOf(T) {
        let reg = new RegExp(T),
            res = reg.exec(this);
        return res === null ? -1 : res.index;
    }
    String.prototype.myIndexOf = myIndexOf;
}();
let S = "zhufengpeixin",
    T = "a"
console.log(S.myIndexOf(T));